查看原文
其他

ABACUS :携手DeepModeling,做源自中国、开源开放的DFT软件

郑大也 深度势能 2022-09-11


什么是第一性原理计算?

密度泛函理论(Density Functional Theory,简称DFT)在材料计算领域扮演着重要的角色。材料计算领域里的第一性原理是指基于量子力学的、不需要经验参数,只根据原子的基本信息(例如种类和位置等)就能较准确地预测物质性质的一套理论方法。因为DFT较好地平衡了精度和效率,逐渐成为应用最为广泛的第一性原理方法;第一性原理软件常指代的就是DFT软件。


如同实验方法发展需要仪器,基于密度泛函理论的第一性原理软件是承载计算模拟材料领域理论发展的主要平台,经典宏观的材料研究经过多年发展已经非常成熟,但是随着人们对新材料的需求和工业技术的不断升级,越来越多的材料进入到纳米及更小的尺度,研究这些材料的性质就不能忽略量子效应。而研究量子效应的关键就是求解薛定谔方程。这时,始于 Kohn 和 Sham 最先提出的 Kohn-Sham 方程,在一代代科研人员的努力下,历经几十年成长起来的第一性原理密度泛函理论已较为完善,相关的DFT软件工具也百花齐放。


近三十年来,在欧洲、美国、日本都有一批优秀的第一性原理软件出现,并且在新算法的发展上始终处于领先地位。国内也有一些小组开展了关于第一性原理软件算法方面的研究工作,但总体来说相比于欧美国家落后不少。


ABACUS软件介绍

图1:ABACUS的程序架构图


ABACUS是由何力新教授、任新国研究员和陈默涵助理教授主导开发的,拥有完全自主知识产权的一款DFT软件,主要针对凝聚态材料模拟计算,通过求解Kohn-Sham方程得到材料基态电荷密度分布,并由此计算目标材料的各项物理性质。


ABACUS软件与当前流行的其他DFT软件相比,有一显著的特征是同时支持平面波(Plane-wave,简称PW)和数值原子轨道(Numerical Atomic Orbitals)两种基矢量。其中,该程序创新性地通过利用溢出函数(Spillage Function)来构造数值原子轨道,有效地提高了计算的精度和可移植性,并在复杂大体系(例如大于5000个原子的转角石墨烯系统)的模拟中表现出高精度和高效率。


其中作为ABACUS中独有的数值原子轨道基组由何力新小组于2010年首次提出1,通过最小化溢出函数方法构造原子轨道基组。通过对半导体、氧化物、金属、团簇等系统的测试,证明了该方法能很好的描述总能量的收敛性并且相比平面波基组有很高的效率。刘晓辉博士和李鹏飞博士等人的进一步详细测试表明了ABACUS中的数值原子轨道基组和平面波基组分别对于分子、固体、表面和缺陷系统都能表现出良好的性能和可靠性。2


2018年郑大也博士在ABACUS中实现了基于数值原子轨道基组的高精度晶格应力计算3,并且通过测试表明数值原子轨道基组相比平面波基组在计算收敛的晶格应力方面有更显著的优势。


2021年林霈泽、任新国、何力新等人提出了一种拟合数值原子轨道基组的新方案4,该方案加入了对参考波函数一阶导数的拟合,进一步提高了ABACUS中原子基组的表现效果并优化了同等精度要求下的计算效率。


基于ABACUS中的数值原子轨道基组,我们还加入了计算电子相对论效应的自旋轨道耦合功能、计算拓扑效应的贝里曲率功能5、计算强关联效应的DFT+U功能、杂化密度泛函、含时密度泛函理论、基于机器学习的交换关联泛函、GPU加速模块等。作为DFT软件主要的功能业已完善,还有更多新功能和新方法正在开发完善过程中,我们将在后续的报道中依次介绍相关进展。


作为采用C++编写的一款DFT软件,ABACUS模块化较清晰,加上具备较完善的自动测试集,进一步的功能开发和性能优化都较为便利。ABACUS采取了依据LGPL协议的开源合作的开发方式,加入了Deep Modeling社区。目前已参与的开发者主要来自中科大、北大、中科院物理所、深势科技、字节跳动等单位,并期待更多的开发者加入。


ABACUS开发历史

2006年,中科大何力新小组决定从头开始设计一款第一性原理计算软件的时候,主要基于如下三个原因:


  1. 大多数第一性原理软件基本都是基于Fortran语言开发的,模块的封装性和复用效率差,亟需迁移到更灵活的语言,如C++上去;


  2. 平面波基组对于包含多个原子复杂材料的计算速度不足,希望开发一套基于局域轨道基组的DFT软件;


  3. 国内比较缺乏DFT软件平台,在已有的软件上进行新算法尝试非常困难。


2006-2012年,陈默涵在中科大读博期间,作为ABACUS早期的主要发展者之一,构建了ABACUS中的平面波和局域轨道自洽求解Kohn-Sham 方程的框架。


2012-2015年,在任新国研究员、刘晓辉博士、李鹏飞博士、沈瑜博士、张文帅博士、林霈泽博士等人的共同努力下,ABACUS的基础功能初步完善,可靠性和程序效率得到大幅度提高,并于2015年发布了第一个正式版本:v1.0.0版。同时发布了经过大量测试的、可靠的数值原子轨道基组数据库。


2016年, v1.0.1发布,增加了原子结构优化和分子动力学功能。


2019年,v2.0.0发布,加入了晶格应力、晶格优化、贝里相位、电极化、Wannier90接口等功能。


2020年,v2.1.0发布,加入了实时演化密度泛函理论、范德华修正等功能。


2021年2月,ABACUS与DeepModeling开源社区达成战略合作,协同开发。


DeepModeling社区中的ABACUS

——发展展望

DFT软件理论上可以通过数值模拟来直接预测新材料,但是目前还面临一些困难。例如对交换关联泛函近似的方法有许多种,不同的近似对于不同的材料计算精度各有千秋,若要达到更高精度,往往意味着更大的计算量。此外,DFT软件计算的体系有限,一般只能达到几十到几百原子的尺度,更大体系的计算需要耗费更大的计算量。


制约DFT软件进入实际工业应用的主要有两个因素:


  1. 不同专业背景领域的用户对第一性原理软件的需求不同。对于这个问题,解决办法是和用户反复迭代去改进程序,让用户满意。这就需要来自社区的频繁反馈,和开发者的及时贡献。这便是ABACUS和DeepModeling社区携手的初衷,只有使用者和开发者合力,真正具有影响力的第一性原理计算软件才能诞生!


  2. 多尺度模拟问题。第一性原理方法处理的目标尺度太小,无法直接模拟实际材料,即使是ABACUS软件为了解决大尺度计算而专门发展的数值原子轨道基组方法1,也只能在消耗大量计算资源的前提下,达到上万原子的计算尺度,而对真正的工业应用需要的十万、百万甚至千万尺度的模拟,则可谓望尘莫及。但是机器学习方法的发展给了我们真正解决尺度问题的希望。例如,DeePMD方法6,通过学习DFT软件生成的势场,成功完成了具备第一性原理精度的大尺度分子动力学模拟计算7!机器学习方法有望真正实现对宏观体系中微观量子效应的模拟,这就需要第一性原理计算软件和机器学习算法软件的共同进步和协同发展,这也是DeepModeling社区和ABACUS软件携手的原因之一。


目前,作为DeepModeling社区最活跃的项目之一,ABACUS正建设成为一个整合许多其他第一性原理相关项目的复合软件平台。



如何加入

作为一款开源DFT软件,ABACUS欢迎任何对DFT软件的使用或开发感兴趣的朋友加入共同开发。不管是反馈使用中遇到的困难还是提出对新功能的开发诉求我们都非常欢迎,可以在Github的ISSUE中向我们提出宝贵的建议,或者直接通过Pull Request提交代码。


ABACUS在DeepModeling社区中的Github仓库地址为:

https://github.com/deepmodeling/abacus-develop


具体的合作开发流程见下图:



结语

在高性能计算技术与机器学习方法飞速发展的今天,理论计算有望真正突破科学边界,解决接近现实世界的复杂问题。第一性原理理论完备,兼具准确性与灵活性,正释放出巨大的潜力。


未来,ABACUS软件平台将会结合DeepModeling社区中的各种开源工具,将第一性原理方法打造成为能解决实际问题的软件工程。我们正让科学方法工业化,让科学理念走进社会。欢迎您的加入



参考文献

1. Mohan Chen et al. J. Phys.: Condens. Matter, 2010, 22 445501.

2. Li P, Liu X, Chen M, et al. Computational Materials Science, 2016, 112: 503-517.

3. Zheng D, Ren X, He L. Computer Physics Communications, 2021: 108043.

4. Lin P, Ren X, He L. Physical Review B, 2021, 103(23): 235131.

5. Gan J, Zheng D, He L. Journal of Physics: Condensed Matter, 2021.

6. Zhang L, Han J, Wang H, et al. Physical Review Letters, 2018, 120(14): 143001.

7. Lu D, Wang H, Chen M, et al. Computer Physics Communications, 2021, 259: 107624.



上下滑动查看更多


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存